# import time
# #使用 单线程串行方式执行
#
#
# def get_page(str):
#     print("正在下载：",str)
#     time.sleep(2)#模拟阻塞操作，每下载成功一个，阻塞时间2秒
#     print("下载成功",str)
#
# name_list = ['xiaozi','aa','bb','cc']#定义一个元素，将四个元素代替四个url，对四个url发起网络请求
#
# start_time = time.time()
#
# for i in range(len(name_list)):
#     get_page(name_list[i])
#
# end_time = time.time()
# print('%d second'% (end_time-start_time))


import time
#导入进程池模块对应的函数Pool
from multiprocessing.dummy import Pool
#使用进程池式执行
start_time = time.time()#从程序开始的位置进行计时
def get_page(str):
    print("正在下载：",str)
    time.sleep(2)#模拟阻塞操作，每下载成功一个，阻塞时间2秒
    print("下载成功",str)

name_list = ['xiaozi','aa','bb','cc']#定义一个元素，将四个元素代替四个url，对四个url发起网络请求

#实例化一个进程池对象，实例化的是ThreadPool对象
pool = Pool(4)
#map的含义是将列表中每一个列表元素传递给get_page进行处理
pool.map(get_page,name_list)  #map(self,func,iterable,chunks..):func表示发生阻塞的操作    map的第一个参数需要传入一个函数，第二个函数需要传入一个可迭代对象

end_time = time.time()#结束时间
print(end_time-start_time)#输出：结束时间-开始时间



